This application relates to Multi-tenant Database Management for SLA Profit Maximization.
In recent years, there has been great interests in exploiting the cloud as a platform for database as a service. As with other cloud-based services, database services may enjoy cost efficiency through consolidation: hosting multiple databases within a single physical server. A number of multi-tenant schemes have been used:
Private virtual machine—Using virtual machine technology, multiple virtual machines can be hosted on a single physical machine. Each virtual machine, however, hosts only a single database tenant. This option gives a good isolation across tenants, but there is virtual machine (VM) performance overhead and also the number of VMs that can be hosted within a physical machine is limited.
Private DB instance—Within a physical machine, multiple database instances are run and each tenant use one database instance. Running a DB instance involves a high memory overhead, so this option has limited scalability.
Private database—Database management system (DBMS) can allow multiple databases to be created within a single instance. Hence each tenant can have its own database while sharing the DB instance. In many of DBMS offerings, each database usually comes with its own buffer pool, so memory isolation is well implemented with this scheme. However, each database has a relatively high memory overhead, which limits the number of tenants for a physical server.
Private table—In this scheme, multiple tenants share a database, while each tenant uses its own set of tables. This scheme is attractive for its relatively low memory overhead of each table compared to that of a database mentioned above, i.e. 4 KB per table in DB2, and 9 KB per table in MySQL. However, at higher scale, this scheme also suffers from memory overhead. Users have reported a significant performance degradation on a blade server when the number of tables rises beyond 50,000, mainly due to i) memory overhead of per-table metadata, and ii) buffer space waste due to per-table page loading.
Shared table—This is the most scalable scheme, since DBMS is specially designed for big tables. Packing many tenants into a single table to create a big table can nicely exploit the DBMS' inherent capability. The main challenge, however, is the heterogeneity of schemas across tenants, which requires a solution for putting them together into a single table.
Multitenant DBMS—This approach uses a new shared-table approach called Chunk Folding. The private table approach may be the ideal option for SaaS database systems in today's DBMS technology. The shared table approach can be based on the universal table and storage and indexing techniques allow for efficient query processing.
New offerings of database-as-a-service, such as Amazon RDS and Microsoft SQL Azure consolidate multiple small databases, or tenants, within a single physical server. The main goal is to reduce operational cost, and to improve business profit. While consolidation is an important and beneficial technique in multitenant database (MTDB), it raises a unique challenge, namely performance isolation. As in any other resource-sharing systems, e.g. virtual machines (VMs) sharing a physical machine, performance isolation is an important and difficult problem in MTDB: one tenant with (temporarily) high resource consumption may hurt neighbors' service quality. Naturally, there has been a large body of research effort for performance isolation, especially in VM consolidation. They focus on performance isolation in terms of low-level metric, such as response time, or higher-level metric such as violations of service level agreements (SLAs). From service providers' perspective, however, business profit is the most important optimization criteria in general, and unfortunately this has not been considered in either VM consolidation or MTDB management systems.
Salesforce provides Platform-as-a-Service (PaaS), called Force.com, which allows developers develop their applications using the provided database service. In this environment, multiple tenants share tables creating a few very large tables. They modify RDBMS and the query optimizer to facilitate highly efficient query processing on those large shared tables, while the optimization techniques are proprietary. Microsoft offers SQL Azure, which hosts multiple MS SQL Server within a physical server. They address several performance issues to support multitenant DBMS, such as consolidated logging across multiple tenants. However they do not support any performance service level agreements (SLAs). Aggressive consolidation, however, may hurt the service quality, leading to SLA violation penalty, which in turn reduces the total business profit, called SLA profit. While consolidation helps to reduce operational cost, too aggressive consolidations may increase SLA violation penalty due to the crowded environment, which leads to the reduced total profit.